7. tex / gfx:82 条 unsupported
以下 82 条(tex 47 + gfx 35)编码已冻结、语义模型未实现:依赖尚未实现的纹理模型与光栅 / tile memory 模型。功能模型当前把它们按"未实现单元"处理——执行报 IllegalInsn(cause 1)。下表与 §6 同格式;tex 行的公共语义前缀:坐标自 rs1 起按 dim 消耗;显式参数按 bias/lod/grad/compare/sample 顺序排列;返回值按 dmask 置位顺序写入,rsd=1 追加 residency dword。
编码与布局要点(T 格式,64 位):
dim:1d/2d/3d/cube/1darray/2darray/cubearray/2dms/2dmsarray/buffer;dmask4 位选返回分量;a16/d16选 16 位坐标/数据;voff启用每 lane 同维度整数偏移;toff为三组有符号 4-bit texel 偏移;rsd=1时最后追加 residency dword(0 = resident)。- 坐标布局(勘误 v0.1.1):坐标自
rs1起,按dim消耗连续向量寄存器(1D: x;2D: x,y;3D: x,y,z;array 追加 layer;cube 用方向向量、face/layer 按硬件定义);显式 LOD、bias、梯度、比较值、MSAA sample index 紧随坐标,变体固定顺序bias/lod/grad/compare/sample;返回值从rd起按dmask置位顺序连续写入。 - 描述符:image 为
udesc8(rs2 起),sampler 为udesc4(rs3 起;fetch/query 无采样器);采样器与 image 描述符存于 uniform 文件,非一致索引由编译器 waterfall。 - fragment 输入约定:
v0packed 像素 xy(各 16 位)、v1coverage、v2sample id/front-facing、v3primitive id;插值读 setup 产生的平面系数,needs_wqm保证完整 quad。tile 记录以 32 位 dword 编址,toff7为记录内 4 字节偏移。 - 开放问题:插值系数的物理存放位置与格式未定(不改变 v0.1 编码)。
7.1 tex.sample 族(10 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
tex.sample | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x0 | async:tex | 隐式 LOD 采样(需要 whole-quad 模式) | ld db sp wqm |
tex.sample.b | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x1 | async:tex | 隐式 LOD 采样 + bias | ld db sp wqm |
tex.sample.l | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x2 | async:tex | 显式 LOD 采样 | ld db sp |
tex.sample.lz | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x3 | async:tex | LOD = 0 采样 | ld db sp |
tex.sample.d | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x4 | async:tex | 显式梯度采样 | ld db sp |
tex.sample.c | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x5 | async:tex | 深度比较采样,隐式 LOD | ld db sp wqm |
tex.sample.c.b | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x6 | async:tex | 深度比较采样 + bias | ld db sp wqm |
tex.sample.c.l | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x7 | async:tex | 深度比较采样,显式 LOD | ld db sp |
tex.sample.c.lz | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x8 | async:tex | 深度比较采样,LOD 0 | ld db sp |
tex.sample.c.d | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x9 | async:tex | 深度比较采样,显式梯度 | ld db sp |
7.2 gather / fetch / query(7 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
tex.gather4 | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0xa | async:tex | 单分量 gather(dmask one-hot;2x2 footprint) | ld db sp |
tex.gather4.c | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0xb | async:tex | 深度比较 gather | ld db sp |
tex.fetch | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0xc | async:tex | 整数坐标 + mip 级 texel 读取(2dms 用 sample index) | ld db sp |
tex.query.lod | rd:v rs1:v rs2:d8^8 rs3:d4^4 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0xd | async:tex | 返回采样所用 (钳位后 LOD, 未钳位 LOD) | ld db sp wqm |
tex.query.size | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0xe | async:tex | 返回 mip 层 s1 的尺寸 (w, h, d/层数) | ld db sp |
tex.query.levels | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0xf | async:tex | 返回 mip 层数 | ld db sp |
tex.query.samples | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x29 f5=0x10 | async:tex | 返回采样数 | ld db sp |
7.3 image 读写(2 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
img.load | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x0 | async:tex | 格式化读取(null 描述符 / 越界 → 0) | ld db sp |
img.store | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x1 | async:vst | 格式化写入(null / 越界丢弃) | st db |
7.4 image 原子(28 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
img.atom.add.u32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x2 | async:vst | 图像原子:M[A] = M[A] + data(整数坐标 s1..) | at db |
img.atom.add.u32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x10 | async:tex | 图像原子:M[A] = M[A] + data(整数坐标 s1..);旧值返回 rd | at db |
img.atom.sub.u32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x3 | async:vst | 图像原子:M[A] = M[A] - data(整数坐标 s1..) | at db |
img.atom.sub.u32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x11 | async:tex | 图像原子:M[A] = M[A] - data(整数坐标 s1..);旧值返回 rd | at db |
img.atom.min.i32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x4 | async:vst | 图像原子:M[A] = min_s(M[A], data)(整数坐标 s1..) | at db |
img.atom.min.i32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x12 | async:tex | 图像原子:M[A] = min_s(M[A], data)(整数坐标 s1..);旧值返回 rd | at db |
img.atom.max.i32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x5 | async:vst | 图像原子:M[A] = max_s(M[A], data)(整数坐标 s1..) | at db |
img.atom.max.i32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x13 | async:tex | 图像原子:M[A] = max_s(M[A], data)(整数坐标 s1..);旧值返回 rd | at db |
img.atom.min.u32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x6 | async:vst | 图像原子:M[A] = min_u(M[A], data)(整数坐标 s1..) | at db |
img.atom.min.u32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x14 | async:tex | 图像原子:M[A] = min_u(M[A], data)(整数坐标 s1..);旧值返回 rd | at db |
img.atom.max.u32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x7 | async:vst | 图像原子:M[A] = max_u(M[A], data)(整数坐标 s1..) | at db |
img.atom.max.u32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x15 | async:tex | 图像原子:M[A] = max_u(M[A], data)(整数坐标 s1..);旧值返回 rd | at db |
img.atom.and.b32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x8 | async:vst | 图像原子:M[A] = M[A] & data(整数坐标 s1..) | at db |
img.atom.and.b32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x16 | async:tex | 图像原子:M[A] = M[A] & data(整数坐标 s1..);旧值返回 rd | at db |
img.atom.or.b32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x9 | async:vst | 图像原子:M[A] = M[A] | data(整数坐标 s1..) | at db |
img.atom.or.b32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x17 | async:tex | 图像原子:M[A] = M[A] | data(整数坐标 s1..);旧值返回 rd | at db |
img.atom.xor.b32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0xa | async:vst | 图像原子:M[A] = M[A] ^ data(整数坐标 s1..) | at db |
img.atom.xor.b32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x18 | async:tex | 图像原子:M[A] = M[A] ^ data(整数坐标 s1..);旧值返回 rd | at db |
img.atom.xchg.b32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0xb | async:vst | 图像原子:M[A] = data(交换)(整数坐标 s1..) | at db |
img.atom.xchg.b32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x19 | async:tex | 图像原子:M[A] = data(交换)(整数坐标 s1..);旧值返回 rd | at db |
img.atom.cmpxchg.b32 | rd:v^2 rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0xc | async:vst | 图像原子:if M[A] == data0: M[A] = data1(比较交换)(整数坐标 s1..) | at db |
img.atom.cmpxchg.b32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x1a | async:tex | 图像原子:if M[A] == data0: M[A] = data1(比较交换)(整数坐标 s1..);旧值返回 rd | at db |
img.atom.inc.u32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0xd | async:vst | 图像原子:M[A] = (old >= data) ? 0 : old + 1(整数坐标 s1..) | at db |
img.atom.inc.u32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x1b | async:tex | 图像原子:M[A] = (old >= data) ? 0 : old + 1(整数坐标 s1..);旧值返回 rd | at db |
img.atom.dec.u32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0xe | async:vst | 图像原子:M[A] = (old == 0 || old > data) ? data : old - 1(整数坐标 s1..) | at db |
img.atom.dec.u32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x1c | async:tex | 图像原子:M[A] = (old == 0 || old > data) ? data : old - 1(整数坐标 s1..);旧值返回 rd | at db |
img.atom.fadd.f32 | rd:v rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0xf | async:vst | 图像原子:M[A] = M[A] + data(binary32,固定 RNE)(整数坐标 s1..) | at db opt |
img.atom.fadd.f32.rtn | rd:v* rs1:v rs2:d8^8 dim:dim dmask:u4 voff:u1 rsd:u1 a16:u1 d16:u1 toff:t12 | T op opcode=0x2d f5=0x1d | async:tex | 图像原子:M[A] = M[A] + data(binary32,固定 RNE)(整数坐标 s1..);旧值返回 rd | at db opt |
7.5 fragment interlock(2 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
interlock.begin | - | SYS op opcode=0x4e f5=0x7 | fixed:1 | 等待更早片段(按图元顺序)对本 warp 像素执行 interlock.end | ei sy fo |
interlock.end | - | SYS op opcode=0x4e f5=0x8 | fixed:1 | 释放本 warp 像素给后续片段(有序 interlock) | ei sy fo |
7.6 插值(12 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
interp.persp.center | rd:v rs2:at7 | R op opcode=0x54 f4=0x0 | async:ls | 透视正确插值 @ 像素中心 | fo |
interp.persp.centroid | rd:v rs2:at7 | R op opcode=0x54 f4=0x1 | async:ls | 透视正确插值 @ 覆盖采样质心 | fo |
interp.persp.sample | rd:v rs2:at7 | R op opcode=0x54 f4=0x2 | async:ls | 透视正确插值 @ 当前采样点(sample-rate shading) | fo |
interp.persp.offset | rd:v rs1:v^2 rs2:at7 | R op opcode=0x54 f4=0x3 | async:ls | 透视正确插值 @ 中心 + (s1, s1+1) f32 偏移 | fo |
interp.persp.atsample | rd:v rs1:v rs2:at7 | R op opcode=0x54 f4=0x4 | async:ls | 透视正确插值 @ 采样索引 s1 | fo |
interp.linear.center | rd:v rs2:at7 | R op opcode=0x54 f4=0x5 | async:ls | 屏幕线性插值(noperspective)@ 像素中心 | fo |
interp.linear.centroid | rd:v rs2:at7 | R op opcode=0x54 f4=0x6 | async:ls | 屏幕线性插值 @ 覆盖采样质心 | fo |
interp.linear.sample | rd:v rs2:at7 | R op opcode=0x54 f4=0x7 | async:ls | 屏幕线性插值 @ 当前采样点 | fo |
interp.linear.offset | rd:v rs1:v^2 rs2:at7 | R op opcode=0x54 f4=0x8 | async:ls | 屏幕线性插值 @ 中心 + (s1, s1+1) f32 偏移 | fo |
interp.linear.atsample | rd:v rs1:v rs2:at7 | R op opcode=0x54 f4=0x9 | async:ls | 屏幕线性插值 @ 采样索引 s1 | fo |
interp.flat | rd:v rs2:at7 | R op opcode=0x54 f4=0xa | async:ls | 常量系数 C(provoking 顶点) | fo |
interp.coef | rd:v^3 rs2:at7 | R op opcode=0x54 f4=0xb | async:ls | 返回属性槽原始平面系数 A, B, C(3 个寄存器) | fo |
7.7 重心坐标(6 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
bary.persp.center | rd:v^2 | R1 op opcode=0x56 f11=0x0 | async:ls | d, d+1 = 透视重心坐标 (b1, b2) @ 像素中心;b0 = 1-b1-b2 | fo |
bary.persp.centroid | rd:v^2 | R1 op opcode=0x56 f11=0x1 | async:ls | 透视重心坐标 @ 质心 | fo |
bary.persp.sample | rd:v^2 | R1 op opcode=0x56 f11=0x2 | async:ls | 透视重心坐标 @ 当前采样 | fo |
bary.linear.center | rd:v^2 | R1 op opcode=0x56 f11=0x3 | async:ls | 线性重心坐标 @ 像素中心 | fo |
bary.linear.centroid | rd:v^2 | R1 op opcode=0x56 f11=0x4 | async:ls | 线性重心坐标 @ 质心 | fo |
bary.linear.sample | rd:v^2 | R1 op opcode=0x56 f11=0x5 | async:ls | 线性重心坐标 @ 当前采样 | fo |
7.8 coverage / sample mask(2 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
cov.get | rd:v | R1 op opcode=0x56 f11=0x6 | fixed:2 | d = 当前像素 coverage 掩码(逐 sample 位;早期 Z 与 smask.and 之后) | fo |
smask.and | rs1:v | R1 op opcode=0x56 f11=0x7 | fixed:2 | coverage[lane] &= s1(清零的 lane 变为 helper) | fo |
7.9 helper / live / demote(4 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
demote | rs1:u | U1 op opcode=0x58 f13=0x0 | fixed:2 | (u1 & EXEC) 内 lane 变 helper:清 coverage、抑制 store/atomic/tile 写,继续执行供导数 | fo ei re |
discard | rs1:u | U1 op opcode=0x58 f13=0x1 | fixed:2 | (u1 & EXEC) 内 lane 终止:清 coverage 并移出 LIVE(编译器还须清 EXEC) | fo ei re |
helper.get | rd:u | U1 op opcode=0x58 f13=0x2 | fixed:2 | U[d] = helper lane 掩码 | fo ei |
live.get | rd:u | U1 op opcode=0x58 f13=0x3 | fixed:2 | U[d] = LIVE 掩码(未 discard 的 lane,含 helper) | fo ei |
7.10 tile memory(6 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
tile.ld.b32 | rd:v rs1:v rs2:t7 | R op opcode=0x5a f4=0x0 | async:ls | d = TILE[像素(lane), sample s1, 偏移 off] | fo ld |
tile.ld.b64 | rd:v^2 rs1:v rs2:t7 | R op opcode=0x5a f4=0x1 | async:ls | 2 dword tile 读取 | fo ld |
tile.ld.b128 | rd:v^4 rs1:v rs2:t7 | R op opcode=0x5a f4=0x2 | async:ls | 4 dword tile 读取 | fo ld |
tile.st.b32 | rd:v rs1:v rs2:t7 | R op opcode=0x5a f4=0x3 | async:ls | TILE[像素(lane), s1 掩码内的 sample, off] = d(helper 抑制) | fo st |
tile.st.b64 | rd:v^2 rs1:v rs2:t7 | R op opcode=0x5a f4=0x4 | async:ls | 2 dword tile 写入(s1 掩码内 sample) | fo st |
tile.st.b128 | rd:v^4 rs1:v rs2:t7 | R op opcode=0x5a f4=0x5 | async:ls | 4 dword tile 写入(s1 掩码内 sample) | fo st |
7.11 depth / stencil(3 条)
| 助记符 | 操作数 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|---|
zs.test.z | rd:v rs1:v | R op opcode=0x5c f4=0x0 | async:ls | 后期深度测试/写入(shader 深度 s1);d = 存活 coverage 掩码 | fo |
zs.test.s | rd:v rs2:v | R op opcode=0x5c f4=0x1 | async:ls | 后期模板测试/写入(参考值 s2);d = 存活 coverage 掩码 | fo |
zs.test.zs | rd:v rs1:v rs2:v | R op opcode=0x5c f4=0x2 | async:ls | 后期深度(s1)+ 模板参考(s2)测试/写入;d = 存活 coverage 掩码 | fo |